"""
练习：
    单词计数统计
"""
from pyspark import SparkConf, SparkContext

# 构建程序的统一入口
conf = SparkConf().setMaster("local[*]").setAppName("test_spark_app")
sc = SparkContext(conf=conf)
# 读取文件数据
file_path = "/Users/dongjian/Documents/学习/python-learn-资料/资料/第15章资料/资料/hello.txt"
f = open(file_path, "r", encoding="UTF-8")
# 取出全部的单词
rdd = sc.textFile(file_path)
word_rdd = rdd.flatMap(lambda x: x.split(" "))
# 将所有的单词转换为二元元组，单词本身为key，value设置为1
word_with_one_rdd = word_rdd.map(lambda word: (word, 1))
# 利用reduceBykey进行分组求和
result_rdd = word_with_one_rdd.reduceByKey(lambda x, y: x + y)
# 打印输出结果
print(result_rdd.collect())

# 关闭spark
sc.stop()
